java - 在 Java 中将 Long 与 Double 相除会产生错误的结果
问题描述
我试图Long
用一个百分比来划分 Java 中的 a 0.99
,它一直给我带来疯狂的结果。
long totalBytes = 5877062
long final = (long) (totalBytes / 0.99) // IT PRODUCES 5936426 > totalBytes
我究竟做错了什么 ?因为1.00
它运作良好,如果我给0.95 ++
它总是产生比totalBytes
.
为什么我失去精度?
Java Version 10.0.2
解决方案
如果要占总字节数的某个百分比,则应将小数百分比乘以总字节值:
long totalBytes = 5877062;
long percent = (long) (0.99 * totalBytes);
推荐阅读
- angular - 通过使用 ng-packagr 向 ng-package.json 添加“资产”,全局样式未应用于 Angular 库
- wso2 - 用户帐户暂停在 WSO2 身份服务器 5.10.0 中不起作用
- python - 导入 SpacyTextBlob 显示 Attributeerror
- php - 3次错误登录尝试后如何在laravel上再次启用锁定用户
- javascript - 如何从文本框中的函数分配保存的更新值
- nginx - Nginx中的000和499错误码有什么区别
- go - _cgo_topofstack@@Base 在剥离的二进制文件中
- javascript - Vue 3 - 移除单个对象时,对象的反应数组有错误的行为
- spring - 如何使用spring批处理读取在远程位置生成的文件,处理并移动到另一个位置?
- python - 将数据框转换为文本制表符分隔