为什么数学。Sqrt不取小数?[英] Why does Math.Sqrt not take a decimal?

问题描述

你好,
为什么 Math.Sqrt() 只接受 double 作为参数?我想
对小数(或 int、float 或 ....)同样满意.我可以
轻松来回转换,但我对背后发生的事情很感兴趣
场景以及是否有小数的某些方面使它们无法存在
在此计算中使用.
谢谢!
伊桑

伊桑·施特劳斯博士
生物信息学科学家
普罗米加公司
伍兹空心路 2800 号
威斯康星州麦迪逊 53711
608-274-4330
800-356-9526
et****************@promega.com

推荐答案

Ethan Strauss <Et**********@discussions.microsoft.com 写道:
为什么 Math.Sqrt() 只接受 double 作为参数?我想
对小数(或 int、float 或 ....)同样满意.我可以
轻松来回转换,但我对背后发生的事情很感兴趣
场景以及是否有小数的某些方面使它们无法存在
本次计算中使用.
嗯,处理数字时通常使用小数
它们自然地*准确地*表示为小数 - 货币
是最常见的例子.

你可能取平方根的数字是那种
您可能应该使用 double 代替.

--
乔恩·斯基特 - <sk***@pobox.com>
网站:http://www.pobox.com/~skeet
博客:http://www.msmvps.com/jon.skeet
深入了解 C#:http://csharpindepth.com

伊桑·施特劳斯写道:
为什么 Math.Sqrt() 只接受 double 作为参数?我想
对小数(或 int、float 或 ....)同样满意.我可以
轻松来回转换,但我对背后发生的事情很感兴趣
场景以及是否有小数的某些方面使它们无法存在
本次计算中使用.
通常该类型的函数返回相同的值
自己输入.

小数的 Sqrt 不会返回真正的小数(小数是
应该是准确的).

一个 int 的 Sqrt 肯定不会返回一个 int.

double Sqrt(decimal) 和 double Sqrt(int) 不会跟随
函数练习

decimal Sqrt(decimal) 和 int Sqrt(int) 将给出一个
对结果不正确的印象

另外:什么时候需要取87美元的平方根??

:-)

Arne

Math 类使用的所有变量都是原始类型.

CLR 不认为 Decimal 是原始类型(CLR 不考虑
包含处理十进制类型的特殊 IL 指令).我会想象
这是原因之一?|.也许???

您可以查看 Decimal 的定义,您会看到它
实现/覆盖几乎所有的数学运算符,包括但是
不限于+,-,*,/,Round, Ceiling, Floor等,很多也是
包含在 Math 类中,但 Decimal 类型提供了自己的
实施.

《伊桑·施特劳斯》<Et**********@discussions.microsoft.com 在消息中写道
新闻:77************************************@microsof t.com...
你好,
为什么 Math.Sqrt() 只接受 double 作为参数?我想
对小数(或 int、float 或 ....)同样满意.我
可以
轻松来回转换,但我对发生的事情很感兴趣
后面
场景以及是否有小数的某些方面使它们无法使用
存在
在此计算中使用.
谢谢!
伊桑

伊桑·施特劳斯博士
生物信息学科学家
普罗米加公司
伍兹空心路 2800 号
威斯康星州麦迪逊 53711
608-274-4330
800-356-9526
et****************@promega.com

本文地址:https://www.itbaoku.cn/post/1050747.html