javascript - 仅当 JavaScript 中的数字以 9 结尾时如何舍入?
问题描述
我想知道是否有办法仅在以 结尾时才舍入我的号码nine
?
例如,我有10.9
它应该四舍五入11
,但如果我有,10.8
那么它不应该四舍五入。
解决方案
- 获取数字的小数(基数)部分。
radix = number % 1.0
- 检查是否
radix
介于0.9
和之间1.0
。- 实际上使用
> 0.8999
而不是>= 0.9
因为0.9
在 IEEE-754 中没有精确的表示。 - 永远不要使用
==
浮点数,因为它们没有精确的表示。
- 实际上使用
- 如果基数在范围之间,则使用将输入数字向上舍入
Math.ceil
像这样:
function roundUpIfDotNine( n ) {
var radix = n % 1.0;
if( radix > 0.899 && radix < 1.0 ) {
return Math.ceil( n );
}
else {
return n;
}
}
推荐阅读
- typescript - 如何指定必须是另一种类型的类型对象?
- neo4j - 即使值不同,也要合并边缘?
- python - 如何将重复的行添加到 Pandas DF?
- r - 你能创建一个使用前缀和后缀调用的 R 函数(像括号一样操作)吗?
- glsl - WebGL fragshader ... gl_FragColor 的传入值是多少?
- reactjs - 可以将材质 UI 样式注入 iframe 吗?
- c++ - 是一种比较向量等于C++中另一个向量的一部分的方法吗?
- python - 获取多年来的平均月数
- javascript - Axios 无法发布导航器 getCurrentPosition
- sql - 为什么这个简单的 SQL 查询不起作用?从表中选择 *, count(*)