问题标签 [tostring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 为什么.NET decimal.ToString(string) 从零四舍五入,显然与语言规范不一致?
我看到,在 C# 中,将 a 舍入decimal
,默认情况下使用MidpointRounding.ToEven
. 这是意料之中的,也是 C# 规范所规定的。但是,鉴于以下情况:
- 一种
decimal dVal
- 一种格式
string sFmt
,当传入 时dVal.ToString(sFmt)
,将产生一个包含四舍五入版本的字符串dVal
...很明显,decimal.ToString(string)
返回一个使用MidpointRounding.AwayFromZero
. 这似乎与 C# 规范直接矛盾。
我的问题是:这种情况有充分的理由吗?或者这只是语言的不一致?
下面,作为参考,我包含了一些代码,这些代码写入控制台各种舍入运算结果和decimal.ToString(string)
运算结果,每个结果都针对值数组中的每个decimal
值。实际输出是嵌入的。之后,我在decimal
类型的 C# 语言规范部分包含了一个相关段落。
示例代码:
C# 语言规范(“十进制类型”)第 4.1.7 节中的段落(在此处获取完整规范(.doc)):
对十进制类型的值进行运算的结果是计算精确结果(保留为每个运算符定义的比例)然后四舍五入以适应表示的结果。结果四舍五入到最接近的可表示值,并且当结果同样接近两个可表示值时,四舍五入到在最低有效数字位置具有偶数的值(这称为“银行家四舍五入”)。零结果的符号始终为 0,标度为 0。
很容易看出他们可能没有ToString(string)
在这一段中考虑过,但我倾向于认为它符合这个描述。
c - 在 Ansi C 中使用 toString 转换数字
是否可以使用 toString 运算符,或者如何将数字转换为 char 数组。
vb.net - Visual Basic - 将回车发送到电子邮件
如何将字符串发送到包含新行(回车)的电子邮件?
问题是我将字符串发送到电子邮件,而电子邮件会去掉回车符。
apache-flex - 如何在运行时打印出对象内存地址?像java中的this.toString()
如何将 AS3 对象的内存位置写入标签?我需要它来进行调试。谢谢
java - Java 和 .NET 中 ToString() 的最初原因是什么?
我过去曾ToString()
适度使用过,我发现它在许多情况下都非常有用。但是,我对这种方法的使用很难证明将这种方法放在System.Object
. 我的疯狂猜测是,在为提出 .NET 框架的初始设计而进行的工作和召开会议期间的某个时间点,我们决定有必要(或至少非常有用)包含一种ToString()
方法,该方法可以由 .NET 框架中的所有内容实现。
有谁知道确切的原因是什么?我是否错过了很多ToString()
证明足够有用的情况System.Object
?最初的原因是ToString()
什么?
非常感谢!
PS - 再说一遍:我不是在质疑该方法或暗示它没有用,我只是想知道是什么让它如此有用,以至于放在System.Object
.
旁注 - 想象一下:
AnyDotNetNativeClass someInitialObject = new AnyDotNetNativeClass([some constructor parameters]);
AnyDotNetNativeClass initialObjectFullCopy = AnyDotNetNativeClass.FromString(someInitialObject.ToString());
这不是很酷吗?
编辑(1):
(A) - 根据一些答案,.NET 语言似乎从 Java 继承了这一点。因此,我将“Java”添加到主题和标签中。如果有人知道在 Java 中实现这一点的原因,那么请说明一下!
(B) - 静态假设FromString
与序列化:当然,但那是完全不同的故事,对吧?
java - 在 Java 中,如何在枚举本身中获取枚举的值?
我想覆盖toString()
我的枚举,Color
. 但是,我不知道如何获取枚举Color
内部实例的值。Color
有没有办法在 Java 中做到这一点?
例子:
java - 何时使用 toString() 方法
这可能听起来很基本......有人可以解释该toString()
方法的使用以及何时有效使用它吗?
已经在谷歌上进行了搜索,但找不到任何好的资源。
vb.net - vb.net 货币显示有四个零而不是两个
当我从 sql server 获取资金字段到 vb.net 代码时,我总是得到 1.0000 而不是 1.00。如何在 vb.net 中将其转换为 1.00?
SQLDR 是我的 sql 数据阅读器
.net - .rdlc 报告中的自定义 .ToString() 格式
我有一个自定义业务对象,它重载了 .ToString() 函数。它还实现了 IFormattable.ToString,因此我可以定义自己的自定义格式。
除了 .rdlc 报告之外,这种方法似乎在我的应用程序中无处不在。例如,我在报表上有一个文本字段,其表达式如下:
“lr”是我创建的自定义格式。运行报告时,我总是得到#Error 作为输出。我在我的 .ToString 函数中放置了断点,并在报告运行时单步执行代码,我知道该函数正在返回正确的值,但报告似乎无法接收和显示它。
java - 将基于字符串的构造函数添加到 Java 类的最佳方法?
假设我有一些课程,例如 Foo:
现在,我希望添加一个构造函数,它的参数是一个表示 Foo 的字符串,例如 Foo("1 2") 将构造一个 x=1 和 y=2 的 Foo。由于我不想复制原始构造函数中的逻辑,因此我希望能够执行以下操作:
但是,Java 不允许在调用 this(x, y) 之前使用语句。有一些公认的解决方法吗?