double discount = navigator.ValueAsDouble * (.1);//????此句有问题。

问题描述

异常详细信息:System.FormatException:输入字符串的格式不正确。源错误:行37:行38://caculate10%discountontheprice行39:doublediscount=navigator.ValueAsDouble*(.1);行40:行41:源文件:c:InetpubwwwrootChapter6II.aspx.cs  行:39Program:publicpartialclassII:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){//loadxmlpathfile//Response.ContentType="xml/text";stringxmlpath=@"C:InetpubwwwrootChapter6books.xml";XmlDocumentdoc=newXmlDocument();doc.Load(xmlpath);XPathNavigatornavigator=doc.CreateNavigator();//setreturnnodesnumtodocumenthere.intcount=navigator.Select("/bookstore/book").Count;//orderpropertyinnodesnavigator.MoveToChild("bookstore","");navigator.MoveToChild("book","");for(inti=0;i<count;i++){navigator.MoveToChild("price","");//caculate10%discountonthepricedoublediscount=navigator.ValueAsDouble*(.1);//????此句有问题。//createattributevaluetothediscountofthedocumenthere.navigator.CreateAttribute("","discount","",discount.ToString());//movetotheparentbookelementnavigator.MoveToParent();//movetothenextsiblingbookelement.navigator.MoveToNext();}navigator.MoveToRoot();Response.Write(navigator.OuterXml);}}

解决方案

解决方案二:
mark
解决方案三:
mark

时间: 2024-09-19 08:54:06

double discount = navigator.ValueAsDouble * (.1);//????此句有问题。的相关文章

【C/C++学院】0901-设计模式的汇总演练

备忘录模式 数据库的备份,文档编辑中的撤销等功能 #include <iostream> #include <string> #include <vector> using namespace std; //备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象. //备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住, //并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态. //同时跟几个MM聊天时,一定要记清楚刚才跟

2.策略模式

1策略模式的核心内容是: A:包含策略的抽象类 B:不同的策略分别实现 C:策略控制器,通过这个策略控制器实现调度控制策略. 2策略模式的作用是根据传递进去的参数不同,实现调度执行不同的策略. 3策略模式具体描述 策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,   从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下   发生变化.策略模把行为和环境分开.环境类负责维持和查询行为类,   各种算法在具体的策略类中提供.由于算法和环境独立开来,算法的

.net入门常见问题

问题 .NET Framework 系统要求 操作系统要求下列平台支持 .NET Framework. 方案 操作系统 客户端 Microsoft Windows 98 Microsoft Windows 98 Second Edition Microsoft Windows Millennium Edition 带有 Service Pack 6.0a 或更高版本的 Microsoft Windows NT 4.0 Workstation 带有 Service Pack 6.0a 或更高版本的

C++中的继承(inheritance) 和动态绑定(dynamic binding) 简介

继承(inheritance)和动态绑定(dynamic binding) 是面向对象的重要组成部分, 即继承(inheritance)和多态(polymorphism), 可以使 派生类(derived class)拥有 基类(base class) 的接口(interface); 派生类可以覆写(override)基类的虚函数(virtual function), 符合特定的功能; 派生类可以隐式地转换为基类 (derived-to-base conversion), 但不可逆, 因为派生类

C++中的纯虚函数(pure virtual) 和抽象基类(abstract base class)

纯虚函数(pure virtual), 是一个基类中的方法, 仅仅是声明, 而不包括定义, 是一个泛化概念(general concept); 是把相应的虚函数, 末尾添加"=0",该虚函数就变为纯虚函数, 可以不用添加定义; 如果是其他虚函数, 即使不使用, 也必须定义(define); 包含纯虚函数的基类, 是抽象基类(abstract base class),不能定义(define)对象(object), 仅可以作为继承使用; 代码: /* * CppPrimer.cpp * *

C++中如何在容器中使用继承和虚函数

容器不支持混合类型, 如果直接把派生类对象, 存入基类容器中, 则无法使用派生-基转换(derived-base conversion); 因为转换只能发生在指针和引用 过程中, 不能发生在 对象直接赋值, 如果是直接转换, 则会产生截断(sliced down); 即派生类部分被切除, 只留下基类部分; 所以存入容器中的派生类 输出为基类部分 的虚函数; 如果想在容器中, 进行继承, 则需要使用指针, 包括智能指针(如:shared_ptr<>), 则会输出派生类的覆写(override)版

C++中派生类的构造和析构顺序详解

派生类因为要调用基类, 所以构造和析构都是按照一定顺序进行; 构造的顺序是: 基(base) -> 派生(derived);即先构造基类, 再构造派生类; 因为 基类 是独立于派生类的, 即不会调用派生类中的对象, 所以应该先被生成; 如果派生类先于基类生成, 则因为无法调用基类资源, 可能生成失败; 析构的顺序是: 派生(derived) -> 基(base); 即先释放派生类, 再释放基类; 因为 派生类 需要先释放调用的基类资源, 所以应该优先释放; 如果基类先析构, 则有可能某些资源被

C++中复制(copy) 和 虚复制(virtual copy) 的 区别

在继承过程中, 需要区分复制(copy)和虚复制(virtual copy); 在派生类转换为基类时, 复制(copy)有可能切掉(sliced down)派生对象的派生部分, 只保留基类部分, 使派生类的虚函数无法使用; 为了避免此情况, 如果传入是对象, 则可以定义虚函数clone, 使派生类继承此虚函数, 再传入容器, 可以重载方法; 另外, 如果传入是实参, 使用shared_ptr<Base>配合make_shared<Derived>添加容器, 也可以进行动态绑定; 再

C++中的引用类型

引用类型也称别名,它是个很有趣的东西.在c++ 下你可以把它看作是另外的一种指针,通过引用类型我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通常我们使用它是把类对象传递给一个函数. 引用对象采用类型名加上&符号和名称的方式进行定义.例如:(int &test;),这里我们就定义了一个int类型的名为test 的引用,但是int &test;这样的方式是不能够被编译成功的,因为引用的定义必须同时给应用进行赋值操作,这里的赋值并不是说把变量的值传递给引用,而是把引用