问题列表 - 第22911页

可可触摸.为什么NSNumber返回intValue和floatValue的差值?

好吧,这绝对没有意义:

我创建了一个NSNumber:

NSNumber *n = [NSNumber numberWithInt:37669178];  
Run Code Online (Sandbox Code Playgroud)

然后我将值作为整数和浮点回显:

int i = [n intValue];  
float f = [n floatValue];
Run Code Online (Sandbox Code Playgroud)

以下是他们的价值观:

int: 37669178  
float: 37669176.000000
Run Code Online (Sandbox Code Playgroud)

咦!?!?!

有人可以向我解释为什么会发生这种情况以及如何解决这个问题.这肯定不是一个精确的问题.37,669,178完全在浮子的精度范围内.

谢谢,
道格

UPDATE

好的,现在我完全糊涂了.参考math.h

#define MAXFLOAT    ((float)3.40282346638528860e+38)
Run Code Online (Sandbox Code Playgroud)

整数值37669178是3.7669178e + 7,完全在允许的最大浮点值范围内.所以,[n floatValue]应该返回37669178.0 而不是 37669176.0

我在这里错过了什么?

cocoa-touch objective-c nsnumber

2
推荐指数
1
解决办法
1025
查看次数

如何使用十六进制表示法为char*赋值?

我通常以下列方式使用指针

    char *ptr = malloc( sizeof(char) * 100 );
    memset( ptr, 0, 100 ) ;
    strncpy( ptr, "cat" , 100 - 1 );

但是这一次,而不是使用"cat",我想在十六进制中使用ASCII等效.

cat = 0x63,0x61,0x74,0x00

我试过了

    strncpy( ptr, "0x630x61" , 100 - 1 );

但它按预期失败了.

什么是正确的语法?

我还需要放一个0x00吗?让我们忘记一下memset,现在我需要放一个0x00吗?因为在"cat"表示法中,会自动放置null.

问候

c

9
推荐指数
2
解决办法
5万
查看次数

替换第二个字符串实例

我只是想知道如何在php中替换字符串中的第二个字符串实例,如下所示:

a - b - c
Run Code Online (Sandbox Code Playgroud)

它会在第二个" -" 之后添加一个额外的空格,但只有在它找到2时才会增加.

php string instance

3
推荐指数
1
解决办法
3353
查看次数

ASP.NET:在Web表单中使用MVC局部视图

我有一个常规的ASP.NET Web表单页面,并且正在粘贴<%= Html.Partial(...) %>我从MVC视图页面中获取的页面.

我需要对此Web表单.aspx做什么才能让Html.Partial工作?我把它放在我的网页表单顶部.aspx页面:

<%@ Import Namespace="System.Web.Mvc" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误:

Compiler Error Message: CS0103: The name 'Html' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc

2
推荐指数
1
解决办法
2968
查看次数

无视速度和兼容性,为什么不只使用类,从不在HTML/CSS中使用ID?

我只使用类,从不使用ID.许多人喜欢使用ID,原因各不相同.

我在stackoverflow上看到了很多关于ID和类的问题,但没有人解决纯代码组织的观点,无论兼容性和运行时性能如何.

从代码组织的角度来看,我认为使用ID就像在Visual Basic代码中使用全局变量一样糟糕.

一个原因是ID必须是唯一的,这会在代码的不同独立部分之间引入不必要的和不良的依赖关系(控制HTML DOM树的不同部分).

另一个原因是,创建新的类名实际上比ID名称更容易,因为使用ID您必须担心全局范围和类名,您只需要担心局部范围内的唯一性,与局部变量相同的好处.

大多数人会争辩说,ID的解决方式比同类更好,我同意这一点.但随着浏览器变得越来越先进,javascript和计算机的CSS寻址的本机实现变得越来越快,性能变得越来越不重要.因此,让我们忽视它,只关注当前问题背景下的代码组织.

这个讨论从这里开始,但是我可能错误的建议会产生负面影响并且变得太大而无法保留评论,因此我在这里尝试将其转换为积极且易于管理的东西.

支持ID的一个可见点是将它们用作规则优先级的工具,因为#name的优先级高于.name的优先级.我的回答是:用ID来提高优先级是坏的黑客攻击,它的清洁,有更多的自由,如果你使用的身体和树的其他级别之间插入额外的根元素,例如优先级body div div span.class1{}高于body div span.class1{}高于body span.class1{}高于span.class1{}.另一个用于此目的的工具是!important.有些人可能会争辩说,当页面结构发生变化时,使用更多的根元素意味着更多的困难,但我不认为是这种情况,因为你永远不必在body之间放置任何东西并指定优先级div.这些div总是可以保持在身体之下,而不是其他所有内容.

另一个有趣的关联带来了指针,ID也不错,因为指针也不错.我的回答:如果你在代码中对绝对内存地址进行硬编码,指针会很糟糕.使用相对指针总是更好(例如:在8086 CPU中使用段(CS,DS,SS,ES);由编译器生成的相对变量和方法地址).如果我们将DOM树视为内存并使用ID与使用类进行比较,则#name表示绝对内存地址,但div.tab1 .name表示相对地址(相对于div.tab1).

我在ID中看到的另一个支持点是,具有ID的元素在javascript中更容易成为全局属性.我的回答:再次,这就像说Visual Basic中的全局变量更方便.问题是你不能保持足够大的全局(或任何其他)命名空间,而不引入像level1_level2_name这样的命名层次结构,这只是将一个命名空间机制替换为另一个命名空间机制.DOM树很方便组织命名空间,为什么要忽视呢?

使用下划线在ID内部进行命名空间模拟是不好的,因为您无法建立命名上下文,并且必须复制代码中的所有路径.这实际上意味着您将无法使用CSS 预处理器来修复CSS无法使用上下文.

html javascript css

9
推荐指数
2
解决办法
634
查看次数

使用gdb在指定的可执行文件外部执行单步汇编代码会导致错误"无法找到当前函数的边界"

我在gdb的目标可执行文件之外,我甚至没有与该目标对应的堆栈.无论如何我想单步执行,以便我可以验证汇编代码中发生了什么,因为我不是x86汇编的专家.不幸的是,gdb拒绝进行这种简单的汇编级调试.它允许我在适当的断点上设置和停止,但是一旦我尝试单步执行,gdb就会报告错误"找不到当前函数的边界"并且EIP不会改变.

额外细节:

机器代码是由gcc asm语句生成的,我将它从objdump -d的输出复制到它正在执行的内核内存位置.我不介意使用加载器将我的目标代码加载到重定位地址的简单方法,但请记住,加载必须在内核模块中完成.

我想另一个替代方法是生成一个伪内核模块或调试信息文件给gdb,使它相信这个区域在程序代码中.gdb在内核可执行文件本身上运行良好.

(对于那些真正想知道的人,我在运行时将代码插入到VMware VM内的Linux内核数据空间中,并通过VMware Workstation的内置gdb存根从gdb远程调试内核进行调试.注意我不是在编写内核利用;我是一名安全研究生,正在编写原型.)

(我可以在我的程序集中的每个指令上设置一个断点.这可以工作,但一段时间后会变得非常费力,因为x86汇编指令的大小会有所不同,每次重新启动时程序集的位置都会改变.)

linux x86 assembly gdb linux-kernel

80
推荐指数
3
解决办法
9万
查看次数

在CPAN上获得帐户的正确方法是什么?

您能告诉我为了获得CPAN帐户而需要遵循的步骤吗?我想贡献一些模块.前段时间,我试图创建一个帐户,我记得我收到了一封包含以下文字的邮件:

The following links are only valid for PAUSE maintainers: 并且有2个链接:

  • Registration form with editing capabilities:

  • Immediate (one click) registration:

我记得我点击了Immediate registration它,但它问了我的用户名和密码.我不知道该怎么做.我走错了方向吗?有没有人有一步一步的帐户注册教程?

perl cpan

8
推荐指数
2
解决办法
461
查看次数

如何将Objective C textual(po)表示转换为真实对象

在xcode中,您可以使用po对象来查看给定对象的文本表示.是否有可能从这个文本表示转换为真正的客观c对象?

谢谢

iphone serialization objective-c

1
推荐指数
1
解决办法
252
查看次数

如何使用jquery ui创建多个按钮样式?

有没有办法使用jquery ui主题滚轮或其他方式为按钮创建多个样式(特别是jquery ui按钮)?如果你看一下生成的主题 - 它似乎只允许一个按钮样式.

关键词是"jquery ui"; 我理解如何在css中执行此操作,但使用jquery ui有助于保持小部件/ CSS很好地播放.

jquery jquery-ui

11
推荐指数
1
解决办法
1万
查看次数

如何在运行时更改DisplayNameAttribute以在Property Grid C#中使用

我想知道如何在运行时更改DisplayNameAttribute,当我进行一些转换时,我希望displayName在我的属性网格中是Feet而不是Meters,这可能吗?

[DisplayName("Meters")]
public double Distance
  {
     get{return distance;}
  }
Run Code Online (Sandbox Code Playgroud)

c# propertygrid

5
推荐指数
1
解决办法
1万
查看次数