草庐IT

c# - 如何将数字四舍五入

我有像floatnum=(x/y)这样的变量;每当num给出像34.443这样的结果时,我需要对结果进行四舍五入。那么如何在C#中做到这一点呢? 最佳答案 使用Math.Ceiling:Returnsthesmallestintegergreaterthanorequaltothespecifiednumber请注意,这适用于double,因此如果您想要float(或整数),则需要强制转换。floatnum=(float)Math.Ceiling(x/y); 关于c#-如何将数字四舍五入

c# - 在 C# 中使用 RegEx 验证 float

我正在尝试在WPF中制作一个只有数字的TextBox并且我有以下代码:voidNumericTextBox_PreviewTextInput(objectsender,TextCompositionEventArgse){e.Handled=!IsValidInput(e.Text);}privateboolIsValidInput(stringp){switch(this.Type){caseNumericTextBoxType.Float:returnRegex.Match(p,"^[0-9]*[.][0-9]*$").Success;caseNumericTextBoxType.

c# - 对类实例而不是 float 进行排序时 Array.Sort() 性能下降

如果对float进行排序,C#中的Array.Sort非常快,我需要一些额外的数据来处理这些float,所以我创建了一个简单的类并扩展了IComparable接口(interface)。现在Array.Sort突然慢了3-4倍,这是为什么?我该如何提高性能?演示代码:usingSystem;usingSystem.Diagnostics;usingSystem.Linq;namespaceSortTest{classProgram{staticvoidMain(string[]args){intarraySize=10000;intloops=500;doublenormalFloat

c# - 使用 ToString ("F1"时 float 的舍入不正确)

我有一个浮点值:12345.6489当我格式化时使用:(12345.6489f).ToString("F1")然后我得到一个结果12345.7但这是不正确的,因为它应该是12345.6。有谁知道为什么会发生这种情况?另一个提示是,在格式化之前转换为double会返回正确的结果,如果我的浮点值小一点,例如1234.6489,那么我也会得到正确的结果。 最佳答案 这好像和我前段时间问的一个问题有关:Round-twiceerrorin.NET'sDouble.ToStringmethod请注意,如果您对号码调用.ToString("G"

c# - UWP Composition Api 是否支持颜色替换?

我一直在寻找与颜色替换相关的示例,这是一个使用Photoshop的示例,例如,可以将蓝色阴影替换为红色阴影:之前:之后:是否可以使用最新版本的CompositionApi中的CompositionEffects?我看过与HueRotations和TemperatureandTint相关的示例:https://xamlbrewer.wordpress.com/2016/04/08/uwp-composition-effects-hue-rotation/https://xamlbrewer.wordpress.com/2016/04/19/uwp-composition-effects-

c# - 如何在 C# Unity 中使用带有二维数组的 C 结构

所以我有一个具有以下结构的CAPItypedefstructmat4f_{floatm[4][4];}mat4f;它作为参数传递给我的一个API函数:voidmyFunction(constmat4fmatrix);我正在使用dll将此函数导出到Unity中的C#:[DllImport("mylib")]privatestaticexternvoidmyFunction(mat4fmatrix);我的问题是,我应该将相应的C#结构设为什么?现在我有以下内容:[StructLayout(LayoutKind.Sequential)]publicstructmat4f{publicfloa

c# - 如何将 float 和泛型相乘?

我正在使用C#在OSX上的Unity3.4.2中编程。我有一个类如下:classFoo{publicTDoFoo(Tbar){floataFloatValue=1.0f;//Dootherstuff...returnaFloatValue*bar;}}当Unity编译这个类时,它给我这个错误信息:errorCS0019:Operator*'cannotbeappliedtooperandsoftypefloat'and`T'我知道我为T提供的类型将支持float乘法。在这种情况下,我该如何实现泛型乘法? 最佳答案 啊哈,好样的Has

c# - 如何重新解释将 float 转换为 int?是否有用于 'this' 转换的非静态转换运算符或用户定义的赋值运算符?

这个问题在这里已经有了答案:Convertintbitstofloatbits(8个答案)关闭2年前。1.我如何重新解释将float转换为int(或将double转换为long)?floatf=2.0f;inti=(int)f;//causesconversion我只想将位模式从f复制到i。如何做到这一点?2。C#中的隐式和显式运算符使用一个中间对象,因为运算符函数是静态的publicstaticimplicitoperatorMyClass(doubles){returnnewMyClass(s);}....MyClassm=2.2;//thiscodeuses'm'andonein

c# - 测试 float NaN 会导致堆栈溢出

C#、VS2010我需要确定浮点值是否为NaN。使用NaN测试floatfloat.IsNaN(aFloatNumber)因堆栈溢出而崩溃。也是一样aFloatNumber.CompareTo(float.NaN).以下不会崩溃,但它没有用,因为它无论如何都会返回NaN:aFloatNumber-float.NaN搜索“堆栈溢出”会返回有关此网站的结果,而不是有关实际堆栈溢出的结果,因此我找不到相关答案。为什么我的应用程序在测试NaN时会发生堆栈溢出?编辑:调用堆栈:编辑:这显然是我的代码中的内容:这条语句:boolaaa=float.IsNaN(float.NaN);在应用程序的构造

c# - 对可空 float 进行加法时的奇怪行为

在处理可空float时,我注意到一些非常奇怪的事情。采取以下代码:float?a=2.1f;float?b=3.8f;float?c=0.2f;float?result=(a==null?0:a)+(b==null?0:b)+(c==null?0:c);float?result2=(a==null?0:a.Value)+(b==null?0:b.Value)+(c==null?0:c.Value);result是6.099999而result2是6.1。我很幸运完全偶然发现了这一点,因为如果我更改a、b和c的值,行为通常看起来是正确的.这也可能发生在其他算术运算符或其他可空值类型上,但