草庐IT

floating-point-conversion

全部标签

type-conversion - Kotlin 的 Double.toInt() 中使用了哪种方法,舍入还是截断?

开启theofficialAPIdoc,它说:ReturnsthevalueofthisnumberasanInt,whichmayinvolveroundingortruncation.我想要截断,但不确定。谁能解释一下可能涉及舍入或截断的确切含义?p.s.:在我的单元测试中,(1.7).toInt()为1,可能涉及截断。 最佳答案 Double.toInt()的KDoc简单地继承自Number.toInt(),为此,确切的含义是,它在具体的Number实现中定义如何将其转换为Int。在Kotlin中,Double操作遵循IEEE

ruby - 如何在 Ruby 中自动将类实例转换为 Float?

我有一个Angle类,我希望它的行为像一个float,并具有其他行为。我创建了包含一个float的类,并将所有未知方法代理给它:classAngleincludeMathdefinitialize(angle=0.0)@angle=Float(angle)#Normalizetheangle@angle=@angle.modulo(PI*2)enddefto_f@angle.to_fend#Otherfunctionality...defmethod_missing(message,*args,&block)ifblock_given?@angle.public_send(messag

ruby-on-rails - 为什么 Ruby 会在 2 个看起来相同的 float 上失败?

我有一个计算生成看起来像Float22.23的值,以及像这样的文字22.23:some_object.total=>22.23some_object.total.class=>Float22.23=>22.2322.23.class=>Float但由于某些原因,以下是错误的:some_object.total==22.23?true:false古怪,对吧?是否使用了某种可能无法通过some_object.total调用完全透明的精确机制? 最佳答案 float不能精确表示其范围内的所有小数。例如,0.9并不完全是0.9,它是一个非常

ruby-on-rails - Ruby:Ruby 中的舍入 float

我在四舍五入时遇到问题。我有一个float,我想将其四舍五入到小数点后的百分之一。但是,我只能使用.round,它基本上将它变成一个int,意思是2.34.round#=>2.有没有一种简单的效果方法来做类似2.3465#=>2.35 最佳答案 向round传递一个参数,其中包含要舍入到的小数位数>>2.3465.round=>2>>2.3465.round(2)=>2.35>>2.3465.round(3)=>2.347 关于ruby-on-rails-Ruby:Ruby中的舍入flo

去 float 比较

为了在Go中比较两个float(float64)是否相等,我对IEEE754和float二进制表示的肤浅理解让我认为这是一个很好的解决方案:funcEqual(a,bfloat64)bool{ba:=math.Float64bits(a)bb:=math.Float64bits(b)diff:=ba-bbifdiff问题是:与旧的abs(diff)相比,这是一种更通用、更精确、更有效的比较两个任意大或小的float“几乎相等”的方法吗?破解?我的理由是,如果在二进制表示中只允许一位差异,那么除了严格相等之外,比较的数字肯定不能再相等了,这显然(如评论中指出的那样)可以用==检查。用于花

sql-server - XPath fn :data in sql server causes Type conversion in expression may affect "CardinalityEstimate" in query plan choice

我有一个xml变量,其中包含一组我想在表中查找的ID。查询时我尝试了几个版本,但以下版本(根据我的测试)似乎是最快的:declare@idsxmlasxml(IdSchemaColelction)='505766458073460689464050'SELECT*FROMentityWHERE@idsXml.exist('/root/Id[data(.)=sql:column("id")]')=1问题是查询计划有以下警告“表达式中的类型转换(CONVERT_IMPLICIT(sql_variant,CONVERT_IMPLICIT(numeric(38,10),[xmlTest].[d

c# - 将 long.MaxValue 转换为 int 和将 float.MaxValue 转换为 int 有什么区别?

我试图了解某些数据类型和转换之间的区别。publicstaticvoidExplicitTypeConversion2(){longlongValue=long.MaxValue;floatfloatValue=float.MaxValue;intintegerValue=(int)longValue;intintegerValue2=(int)floatValue;Console.WriteLine(integerValue);Console.WriteLine(integerValue2);}当我运行该代码块时,它输出:-1-2147483648我知道如果您要分配给整数的值大于该整

php - 页脚中的 float /固定div

我有一个wordpress网站,我想在页面的最底部显示一个googleadsense横幅广告(320px50px),只对移动用户开放。当我说在页面的底部时,我真的应该说是可视屏幕的底部,所以无论用户在页面的哪个位置,它总是可见的。我已经计算出我需要使用媒体查询,并且我已经找到了使用该站点的主要移动设备的大小,这些设备的宽度是320px或360px。我为此编写并放在标准style.css文件中的css是;@mediaonlyscreenand(min-device-width:320px)and(max-device-width:360px){.mobileadunit{width:32

java - 当 l(long) -= f(float) 时发生了什么?

这个问题在这里已经有了答案:Floatingpointarithmeticnotproducingexactresults[duplicate](7个答案)WhydoesJavaimplicitly(withoutcast)converta`long`toa`float`?(4个答案)关闭6年前。publicclassSimplePrint{publicstaticvoidmain(String[]args){longi=System.currentTimeMillis();System.out.println(i);floath=0.0f;i-=h;System.out.printl

c++ - std::chrono::time_point 设置为现在

我对这些库还是很陌生,我可以在std::chrono上找到的文档对我不起作用。我正在尝试实现一个包含时间戳的对象容器。这些对象都将按从最近到最不最近的顺序存储,我决定尝试使用std::chrono::time_point来表示每个时间戳。处理数据的线程将定期唤醒,处理数据,查看何时需要再次唤醒,然后在这段时间内休眠。staticstd::chrono::time_point_nextWakeupTime;我的印象是上面的声明使用了一个毫秒级精度的时钟。下一步是将_nextWakeupTime设置为现在的表示;_nextWakeupTime=time_point_cast(steady_