从点后的浮点数中取值

Posted

技术标签:

【中文标题】从点后的浮点数中取值【英文标题】:Take value from float number after dot 【发布时间】:2015-12-01 15:03:57 【问题描述】:

如何在浮点值中正确提取昏迷后的第二个值。

例子:

var value = 5.435

我想在昏迷之后取第二个值,即 3。

如何正确地做到这一点?

【问题讨论】:

【参考方案1】:

如果您想同时处理正值和负值:

(Int)( abs(value) * 100 ) % 10

如果你想保留标志,只需删除abs

【讨论】:

Int 周围不需要括号。 你说得对,Int 周围的括号是不必要的。【参考方案2】:

也许是这个:(int)( value * 100 ) % 10

【讨论】:

【参考方案3】:

如果它总是小数点后三位,我会这样做。

var value = 5.435
value *= 100

var digit = value % 10

【讨论】:

【参考方案4】:

修改是一项昂贵的操作,而是这样做

(Int(value * 100)) - (Int(value * 10) * 10)

在你的场景中我们得到

(Int(5.435 * 100)) - (Int(5.435 * 10) * 10);
(Int(543.5)) - (Int(54.35) * 10);
(543) - (54 * 10);
(543) - (540);
3

【讨论】:

“Mod 是一项昂贵的操作” – 比多次乘法加上舍入到 Int 更昂贵?你对这个事实有什么参考吗? 这是嵌入式系统的参考:embeddedgurus.com/stack-overflow/2011/02/… 它涉及减法和除法,除非编译器足够聪明,可以将除法转换为乘法,否则除法也很慢。我刚刚做了一个游乐场测试,循环10000次,mod大约需要2.8941秒,我的方法平均需要2.6752。

以上是关于从点后的浮点数中取值的主要内容,如果未能解决你的问题,请参考以下文章

JMeter 如何生成指定取值范围指定小数位数的随机浮点数

C语言 "float.h" 浮点数设定

点后 3 位浮点数

Python中的浮点数探秘

Python中的浮点数探秘

androidstudio获取edittext的浮点数